using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using Renci.Data.Interop.OpenGIS.Gml_32;

namespace Cuahsi.Data.Interop.WaterML2
{
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.opengis.net/waterml/2.0")]
    [XmlRoot("MeasurementTimeseriesMetadata", Namespace = "http://www.opengis.net/waterml/2.0", IsNullable = false)]
    [DataContract(Name = "MeasurementTimeseriesMetadataType", Namespace = "http://www.opengis.net/waterml/2.0")]
    public partial class MeasurementTimeseriesMetadataType : TimeseriesMetadataType
    {

        private TimePositionType startAnchorPointField;

        private TimePositionType endAnchorPointField;

        private System.Nullable<bool> cumulativeField;

        private TimePositionType accumulationAnchorTimeField;

        private string accumulationIntervalLengthField;

        private string maxGapPeriodField;

        [DataMember()]
        public TimePositionType startAnchorPoint
        {
            get
            {
                return this.startAnchorPointField;
            }
            set
            {
                this.startAnchorPointField = value;
            }
        }

        [DataMember()]
        public TimePositionType endAnchorPoint
        {
            get
            {
                return this.endAnchorPointField;
            }
            set
            {
                this.endAnchorPointField = value;
            }
        }

        [DataMember()]
        public System.Nullable<bool> cumulative
        {
            get
            {
                return this.cumulativeField;
            }
            set
            {
                this.cumulativeField = value;
            }
        }

        [XmlIgnore()]
        [DataMember()]
        public bool cumulativeSpecified
        {
            get
            {
                return cumulative.HasValue;
            }
        }

        [DataMember()]
        public TimePositionType accumulationAnchorTime
        {
            get
            {
                return this.accumulationAnchorTimeField;
            }
            set
            {
                this.accumulationAnchorTimeField = value;
            }
        }

        [XmlElement(DataType = "duration")]
        [DataMember()]
        public string accumulationIntervalLength
        {
            get
            {
                return this.accumulationIntervalLengthField;
            }
            set
            {
                this.accumulationIntervalLengthField = value;
            }
        }

        [XmlElement(DataType = "duration")]
        [DataMember()]
        public string maxGapPeriod
        {
            get
            {
                return this.maxGapPeriodField;
            }
            set
            {
                this.maxGapPeriodField = value;
            }
        }
    }
}